package com.sz.virtualbank.common.utils;

import com.sz.virtualbank.common.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;

/**
 * 参数校验工具类
 * 
 * @author Claude
 */
public class CheckUtil {
    
    /**
     * 业务校验工具
     */
    public static class Biz {
        
        public static final Biz INSTANCE = new Biz();
        
        private Biz() {}
        
        /**
         * 校验表达式为true
         * 
         * @param expression 表达式
         * @param message 错误消息
         * @return 当前实例
         */
        public Biz isTrue(boolean expression, String message) {
            if (!expression) {
                throw BusinessException.of(4000, message);
            }
            return this;
        }
        
        /**
         * 校验对象不为null
         * 
         * @param object 对象
         * @param message 错误消息
         * @return 当前实例
         */
        public <T> Biz notNull(T object, String message) {
            if (object == null) {
                throw BusinessException.of(4000, message);
            }
            return this;
        }
        
        /**
         * 校验字符串不为空
         * 
         * @param str 字符串
         * @param message 错误消息
         * @return 当前实例
         */
        public Biz notEmpty(String str, String message) {
            if (StringUtils.isBlank(str)) {
                throw BusinessException.of(4000, message);
            }
            return this;
        }
    }
}
